package edu.gduf.dao;

import edu.gduf.domain.Message;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;

@Repository
public interface MessageDao {

    /**
     * 获取用户的消息列表
     * @param owner
     * @return
     */
    List<Message> getMessageList(String owner);

    /**
     * 获取用户与用户间的聊天记录
     * @param owner
     * @param friendName
     * @return
     */
    List<Message> getAllMessageByOF(@Param("owner") String owner, @Param("friendName") String friendName);

    /**
     * 发送消息
     * @param message
     * @return
     */
    Integer addMessage(Message message);

    /**
     * 删除消息
     * @param mid
     * @return
     */
    Integer deleteMessageByMid(List<Integer> mid);

    /**
     * 删除用户与用户间所有消息
     * @param owner
     * @param friendName
     * @return
     */
    Integer deleteAllMessageByOF(@Param("owner") String owner,@Param("friendName") String friendName);

    /**
     * 获取用户未读的消息数量
     * @param owner
     * @return
     */
    Integer getUnReadNumByOwner(String owner);

    /**
     * 获取用户的所有消息数
     * @param owner
     * @return
     */
    Integer getAllMessageNumByOwner(String owner);

    /**
     * 获取用户与用户间的所有消息数
     * @param owner
     * @param friendName
     * @return
     */
    int getMessageNumWithFriend(@Param("owner") String owner,@Param("friendName") String friendName);

    /**
     * 将消息设置成已读
     * @param mid
     * @return
     */
    int readMessage(List<Integer> mid);

}
